package cn.com.dashihui.web.service;

import java.sql.SQLException;
import java.util.List;

import com.jfinal.plugin.activerecord.Db;
import com.jfinal.plugin.activerecord.IAtom;
import com.jfinal.plugin.activerecord.Record;

import cn.com.dashihui.web.dao.Category;
import cn.com.dashihui.web.dao.GoodsSaleTemplate;

public class GoodsSaleTemplateService {
	
	/**
	 * 查询所有的模板信息
	 */
	public List<GoodsSaleTemplate> findAllGoodsTemplates(){
		return GoodsSaleTemplate.me().find("SELECT * FROM t_bus_goods_sale_template");
	}
	/**
	 * 查询所有的规格信息
	 */
	public List<Record> findAllSpec() {
		return Db.find( "SELECT * FROM t_bus_goods_sale_spec ");
	}
	/**
	 * 根据商品分类的二级id 查询出分类的名称
	 * @param name
	 * @return
	 */
	public String findByCategorytwname(String sCategorytwid){
		return Category.me().findFirst("SELECT C.categoryName from  t_dict_category C where categoryId=?",sCategorytwid).get("categoryName");
	}
	/**
	 * 存储模板
	 * @param option
	 * @return
	 */
	public boolean saveTemplate(GoodsSaleTemplate goodsTemplate){
		return goodsTemplate.save();
	}
	/**
	 * 删除模板
	 */
	public boolean delete(final int id){
		//事务处理，同时商品绑定的销售信息和模板信息，并下架相关商品
		return Db.tx(new IAtom(){
			@Override
			public boolean run() throws SQLException {
				boolean ret1 = GoodsSaleTemplate.me().deleteById(id);
				Db.update("DELETE FROM t_bus_goods_sale_gt WHERE templateid=?",id);
				Db.update("DELETE FROM t_bus_goods_sale WHERE templateid=?",id);
/*				Db.update("UPDATE t_bus_goods p LEFT JOIN t_bus_goods_sale_gt pp ON p.id = pp.goodsid SET p.state = 3 WHERE pp.templateid = ?",id);
*/				return ret1;
			}
		});
	}
	/**
	 * 根据id查找模板
	 */
	public GoodsSaleTemplate findById(int id){
		return GoodsSaleTemplate.me().findFirst("SELECT * FROM t_bus_goods_sale_template WHERE id=?",id);
	}
	/**
	 *修改模板
	 */
	public boolean updateTemplate(GoodsSaleTemplate goodsTemplate){
		return goodsTemplate.update();
	}
	/**
	 * 根据id查询规格名称
	 * @param iid
	 * @return
	 */
	public String findSpecByid(int iid){
		return Category.me().findFirst("SELECT s.specName from  t_bus_goods_sale_spec s where id=?",iid).get("specName");
	}
	
	/**
	 * 根据name查找模板
	 */
	public GoodsSaleTemplate findByName(String name){
		return GoodsSaleTemplate.me().findFirst("SELECT * FROM t_bus_goods_sale_template WHERE name=?",name);
	}
	/**
	 * 根据id查找模板
	 */
	public List<Record> findSaleGT(int id){
		return Db.find("SELECT * FROM t_bus_goods_sale_gt WHERE templateid=?",id);
	}
}
